/**
 ** 概述：二分法查找算法
 ** 原理: 对于一个有序序列，从序列中间开始查找，根据大小比较结果，再从剩余一半中查找，依次循环，直至找到结果。
 ** 限制: 只能作用于有序序列
 ** 时间复杂度: T(n) = O(logN)
 **/
export function search(){
	// 有序序列，可以通过参数传递进来
	 let arr = [1,2,3,4,5,6, 7,8, 9,10,11,12,13,14,15];
	 // 要查找的数据,可以通过参数传递进来
	 let searchValue = 5;
	 // 低位序号变量
	 let low = 0;
	 // 高位序号变量
	 let high = arr.length - 1;
	 
	 while(low <= high){
		 // 高位变量和低位变量中间的序号
		 let mid = parseInt((low + high) / 2);
		 // 中间数字与要查找的数字相等时 返回序号，已找到结果。
		 if(arr[mid] == searchValue){
			 return mid;
		 }
		 // 中间数大于要查找数字时,将舍弃中间到高位的一半数字，将中间的前一个数字序号赋值给高位变量;反之，则舍弃另一半，将中间的后一位数字赋值给低位变量。
		 if(arr[mid] > searchValue){
			 high = mid - 1;
		 } else {
			 low = mid + 1;
		 }
	 }
	 return null;
 }